package 简单;

/*
* 宝石与石头
* 力扣地址：https://leetcode-cn.com/problems/jewels-and-stones/
*
* 给定字符串J 代表石头中宝石的类型，和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型，你想知道你拥有的石头中有多少是宝石。
* J 中的字母不重复，J 和 S中的所有字符都是字母。字母区分大小写，因此"a"和"A"是不同类型的石头。
* 示例 1:
* 输入: J = "aA", S = "aAAbbbb"
* 输出: 3
* 示例 2:
* 输入: J = "z", S = "ZZ"
* 输出: 0
* 注意:
* S 和 J 最多含有50个字母。
* J 中的字符不重复。
* 思路：使用map 统计S字符串 在在map集合中寻找 J
* */

import java.util.HashMap;

public class demo771 {

    public static void main(String[] args) {

//        System.out.println(numJewelsInStones("aA","aAAbbbb"));
        System.out.println(numJewelsInStones("z","ZZ"));

    }

    public static int numJewelsInStones(String J, String S) {

        HashMap<Integer,Integer> map = new HashMap<>();



        for (int i=0;i<S.length();i++){

            if (map.get((int)S.charAt(i)) != null)
                map.put((int)S.charAt(i),map.get((int)S.charAt(i))+1);
            else
                map.put((int)S.charAt(i),1);

        }

        int count = 0;



        for (int i=0;i<J.length();i++){
            if (map.get((int)J.charAt(i)) != null)
               count += map.get((int)J.charAt(i));
        }

        return count;

    }

}
